// 2025/11/9
// 矩阵置零

class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        int m = matrix.size(), n = matrix[0].size();
        vector<bool> rows(m, false), cols(n, false);
        for(int i = 0; i < m; i++)
        {
            for(int j = 0; j < n; j++)
            {
                if(matrix[i][j] == 0)
                {
                    rows[i] = cols[j] = true;
                }
            }
        }

        for(int i = 0; i < m; i++)
        {
            for(int j = 0; rows[i] && j < n; j++)
                matrix[i][j] = 0;
        }
        for(int j = 0; j < n; j++)
        {
            for(int i = 0; cols[j] && i < m; i++)
                matrix[i][j] = 0;
        }
    }
};